package cc.co.taciano.agenda2.dao;

import cc.co.taciano.agenda2.beans.Bean;
import cc.co.taciano.agenda2.dao.util.DataAccessLayerException;
import java.util.List;

/**
 * @author Taciano Morais Silva
 * @version 05/11/2008
 * @since 05/11/2008
 */
public interface Dao<T extends Bean> {

    void create(T bean) throws DataAccessLayerException;

    void update(T bean) throws DataAccessLayerException;

    void remove(T bean) throws DataAccessLayerException;

    void remove(Integer id) throws DataAccessLayerException;

    T find(Integer id) throws DataAccessLayerException;

    List<T> findAll() throws DataAccessLayerException;
}
